func reverseLeftWords(s string, n int) string {
    byteS := []byte(s)
    reverse(&byteS, 0, n -1)
    reverse(&byteS, n, len(byteS)-1)
    reverse(&byteS, 0, len(byteS)-1)
    return string(byteS)
}

func reverse(s *[]byte, start int, end int) {
    for start < end {
        (*s)[start], (*s)[end] = (*s)[end], (*s)[start]
        start++
        end--
    }
}